package com.demo.service;

import com.demo.entity.Vo.DischargeSummaryExportVo;
import com.demo.entity.Vo.DvtDiagonseExportVo;
import com.demo.entity.Vo.PatientExportVo;
import com.demo.entity.Vo.VtePreventiveExportVo;
import com.demo.entity.from.DvtScreeningExcle;
import com.demo.entity.from.PatientExcle;
import com.demo.entity.from.VtePreventionExcle;
import com.demo.enums.ExportInfoTypeEnum;
import com.demo.response.Result;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 数据导出service
 */
public interface ExportDataService {

    /**
     * 数据导出
     * @param response
     * @param type                  导出信息类型  1.患者信息  2.VTE防治评估 3.DVT筛查诊断 4.出院信息
     * @param patientExcle          患者信息【条件对象】
     * @param vtePreventionExcle    VTE防治评估【条件对象】
     * @param dvtScreeningExcle     DVT筛查诊断【条件对象】
     * @return
     */
    Result patientExport(HttpServletResponse response, ExportInfoTypeEnum type, PatientExcle patientExcle, VtePreventionExcle vtePreventionExcle, DvtScreeningExcle dvtScreeningExcle);

    /**
     * 通过传入条件，返回患者信息列表
     * @param patientExcle
     * @return
     */
    public List<PatientExportVo> getPatientList(PatientExcle patientExcle);

    /**
     * 通过传入条件，返回患者VTE评估诊断列表
     * @param vtePreventionExcle
     * @return
     */
    public List<VtePreventiveExportVo> getVtePreventiveList(VtePreventionExcle vtePreventionExcle);

    /**
     * 根据传入条件，返回患者DVT诊断列表信息
     * @param dvtScreeningExcle
     * @return
     */
    public List<DvtDiagonseExportVo> getDvtDiagonseList(DvtScreeningExcle dvtScreeningExcle);

    /**
     * 根据传入条件，返回出院总结信息列表 TODO 视图界面暂时无条件，所以此处为空
     * @return
     */
    public List<DischargeSummaryExportVo> getSummaryList();

    /**
     * 通过诊断ID，返回时机名称
     * @param number
     * @return
     */
    public String getStringDiagnose(Integer number);

    /**
     * 通过临床可能性，返回可能性名称
     * @param number
     * @return
     */
    public String getdetectRankName(Integer number);

    /**
     * 通过D二聚体，返回结果字符
     * @param number
     * @return
     */
    public String getDimerResult(Integer number);

    /**
     * 通过静脉加压缠身检查，返回结果集字符
     * @param number
     * @return
     */
    public String getVenousResult(Integer number);

    /**
     * 通过诊断结果ID，返回结果字符
     * @param number
     * @return
     */
    public String getDiagnoseResultName(Integer number);


}
